<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <!--引入Vue-->
  <script type="text/javascript" src="../js/vue.js"></script>
  <title></title>
</head>

<body>
  <!--准备好一个容器-->
  <div class="root">
    <h2>学校名称:{{name}}</h2>
    <h2>学校地址：{{address}}</h2>
  </div>

  <script type="text/javascript">
    let data={
      name:'尚硅谷',
      address:'北京'
    }

    //创建一个监视的实例对象，用于监视data中属性的变化
    const obs=new Observer(data)
    console.log(obs)

    function Observer(obj){
      //汇总对象中所有的属性形成一个数组
      const keys=Object.keys(obj)
      //遍历
      keys.forEach((k)=>{
        Object.defineProperty(this,k,{
          get(){
            return obj[k]
          },
          set(val){
            console.log('${k}被改了')
            obj[k]=val
          }
        })
      })
    }
  </script>
</body>

</html>